package com.zhou.system.management.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.zhou.common.lib.model.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * <p>
 * 系统菜单表
 * </p>
 *
 * @author zxf
 * @since 2023-05-18
 */
@Getter
@Setter
@TableName("sys_menu")
@ApiModel(value = "SysMenu对象", description = "系统菜单表")
public class SysMenu extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "菜单ID", position = 1)
    @JsonProperty(index = 1)
    @TableId(value = "menu_id", type = IdType.AUTO)
    private Long menuId;

    @ApiModelProperty(value = "菜单名称", position = 2)
    @JsonProperty(index = 2)
    private String menuName;

    @ApiModelProperty(value = "父菜单ID", position = 3)
    @JsonProperty(index = 3)
    private Long parentId;

    @ApiModelProperty(value = "路由地址", position = 4)
    @JsonProperty(index = 4)
    private String path;

    @ApiModelProperty(value = "组件路径", position = 5)
    @JsonProperty(index = 5)
    private String component;

    @ApiModelProperty(value = "打开方式;0:_self,1:_blank", position = 6)
    @JsonProperty(index = 6)
    private Integer openType;

    @ApiModelProperty(value = "菜单类型;0：目录，1：菜单，2是按钮", position = 7)
    @JsonProperty(index = 7)
    private Integer menuType;

    @ApiModelProperty(value = "菜单图标", position = 8)
    @JsonProperty(index = 8)
    private String menuIcon;

    @ApiModelProperty(value = "显示顺序", position = 9)
    @JsonProperty(index = 9)
    private Integer orderNum;

    @ApiModelProperty(value = "菜单状态;0：显示，1：隐藏", position = 10)
    @JsonProperty(index = 10)
    private Integer visible;

    @ApiModelProperty(value = "菜单状态;0：正常，1：停用", position = 11)
    @JsonProperty(index = 11)
    private String status;

    @ApiModelProperty(value = "权限标识", position = 12)
    @JsonProperty(index = 12)
    private String perms;

}
